home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / texte / qed / src / rsc.c < prev    next >
C/C++ Source or Header  |  1998-09-22  |  4KB  |  188 lines

  1. #include "global.h"
  2. #include "rsc.h"
  3. #include "version.h"
  4.  
  5. extern char    __Ident_gnulib[];
  6. extern char    __Ident_gem[];
  7.  
  8. /*
  9.  * exportierte Variablen
  10.  */
  11. OBJECT     *menu;
  12. OBJECT     *about;
  13. OBJECT     *about2;
  14. OBJECT     *print;
  15. OBJECT     *textinfo;
  16. OBJECT     *prjinfo;
  17. OBJECT    *blockinfo;
  18. OBJECT    *sort;
  19. OBJECT     *replace;
  20. OBJECT    *repask;
  21. OBJECT     *find_obj;
  22. OBJECT     *pos;
  23. OBJECT     *marken;
  24. OBJECT     *makrorep;
  25. OBJECT     *funktionstasten;
  26. OBJECT    *umlautkonv;
  27. OBJECT    *fehler;
  28. OBJECT     *globalop;
  29. OBJECT     *localop;
  30. OBJECT     *muster;
  31. OBJECT    *autosave;
  32. OBJECT    *klammer;
  33. OBJECT     *printer;
  34. OBJECT     *printer_sub;
  35. OBJECT    *seoptions;
  36.  
  37. OBJECT     *winicon;
  38.  
  39. OBJECT     *popups;
  40. OBJECT     *strings;
  41.  
  42. char        **alertmsg;
  43.  
  44.  
  45. static bool    rsc_init = FALSE;
  46.  
  47. bool init_resource(void)
  48. {
  49.     PATH    rsc_path;
  50.  
  51.     if (path_from_env("QED", rsc_path))
  52.     {
  53.         strcat(rsc_path, "qed.rsc");
  54.         rsc_init = rsrc_load(rsc_path);
  55.     }
  56.     if (!rsc_init)
  57.     {
  58.         strcpy(rsc_path, "qed.rsc");
  59.         shel_find(rsc_path);
  60.         rsc_init = rsrc_load(rsc_path);
  61.         if (!rsc_init)
  62.         {
  63.             strcpy(rsc_path, gl_appdir);
  64.             strcat(rsc_path, "qed.rsc");
  65.             rsc_init = rsrc_load(rsc_path);
  66.         }
  67.     }
  68.  
  69.     if (rsc_init)
  70.     {
  71.         char        str[25];
  72.         OBJECT    *tmp;
  73.         
  74.         /* Stimmt die RSC-Version? */
  75.         rsrc_gaddr(R_TREE, VERSION, &tmp);
  76.         get_string(tmp, RSC_VERSION, str);
  77.         if (strcmp(str, QED_VERSION) != 0)
  78.         {
  79.             do_alert(1, 0, "[3][Falsche RSC-Version!|Wrong RSC version!][Exit]");
  80.             rsrc_free();
  81.             return FALSE;
  82.         }
  83.  
  84.         rsrc_gaddr(R_TREE, MENUTREE,    &menu);
  85.         /* nur temporär, da sonst die XXX kurz zusehen sind. */
  86.         set_string(menu, TSHELL, " Shell                    ");
  87.         create_menu(menu);
  88.  
  89.         rsrc_gaddr(R_TREE, ABOUT,        &about);
  90.         fix_dial(about);
  91.         rsrc_gaddr(R_TREE, ABOUT2,        &about2);
  92.         fix_dial(about2);
  93.  
  94.         rsrc_gaddr(R_TREE, PRINT,        &print);
  95.         fix_dial(print);
  96.         rsrc_gaddr(R_TREE, TEXTINFO,    &textinfo);
  97.         fix_dial(textinfo);
  98.         rsrc_gaddr(R_TREE, PRJINFO,    &prjinfo);
  99.         fix_dial(prjinfo);
  100.         rsrc_gaddr(R_TREE, BLOCKINFO, &blockinfo);
  101.         fix_dial(blockinfo);
  102.         rsrc_gaddr(R_TREE, SORT,      &sort);
  103.         fix_dial(sort);
  104.  
  105.         rsrc_gaddr(R_TREE, REPLACE,    &replace);
  106.         fix_dial(replace);
  107.         rsrc_gaddr(R_TREE, REPASK,        &repask);
  108.         fix_dial(repask);
  109.         rsrc_gaddr(R_TREE, FINDFILE,    &find_obj);
  110.         fix_dial(find_obj);
  111.         rsrc_gaddr(R_TREE, POS,            &pos);
  112.         fix_dial(pos);
  113.         rsrc_gaddr(R_TREE, MARKEN,        &marken);
  114.         fix_dial(marken);
  115.  
  116.         rsrc_gaddr(R_TREE, MAKROREP,     &makrorep);
  117.         fix_dial(makrorep);
  118.         rsrc_gaddr(R_TREE, FUNKTION,    &funktionstasten);
  119.         fix_dial(funktionstasten);
  120.         rsrc_gaddr(R_TREE, UMLAUTE,     ¨autkonv);
  121.         fix_dial(umlautkonv);
  122.         rsrc_gaddr(R_TREE, FEHLER,     &fehler);
  123.         fix_dial(fehler);
  124.  
  125.         rsrc_gaddr(R_TREE, GLOBALOP,    &globalop);
  126.         fix_dial(globalop);
  127.         rsrc_gaddr(R_TREE, LOCALOP,    &localop);
  128.         fix_dial(localop);
  129.         rsrc_gaddr(R_TREE, MUSTER,        &muster);
  130.         fix_dial(muster);
  131.         rsrc_gaddr(R_TREE, AUTOSAVE,  &autosave);
  132.         fix_dial(autosave);
  133.         rsrc_gaddr(R_TREE, KLAMMER,    &klammer);
  134.         fix_dial(klammer);
  135.         rsrc_gaddr(R_TREE, PRINTER,    &printer);
  136.         fix_dial(printer);
  137.         rsrc_gaddr(R_TREE, PRN_SUB,    &printer_sub);
  138.         fix_dial(printer_sub);
  139.  
  140.         rsrc_gaddr(R_TREE, SEOPTION,     &seoptions);
  141.         fix_dial(seoptions);
  142.  
  143.         rsrc_gaddr(R_TREE, WINICON,    &winicon);
  144.         rsrc_gaddr(R_TREE, POPUPS,        &popups);
  145.         fix_menu(popups);
  146.  
  147.         rsrc_gaddr(R_TREE, STRINGS,   &strings);
  148.         rsrc_gaddr(R_FRSTR, NOWINDOW,    &alertmsg);        /* _erster_ Alert */
  149.  
  150.         /* Menü ist breiter als 640, ggf. anpassen */
  151.         if (gl_desk.g_w > 640)
  152.             menu[MSOPT - 1].ob_x += 5 * gl_wchar;
  153.         else
  154.             menu[MSOPT - 1].ob_x -= 1 * gl_wchar;
  155.             
  156.  
  157.         /* Versionen eintragen */        
  158.         set_string(about, ADATUM, __DATE__);
  159.         set_string(about, AVERSION, QED_VERSION);
  160.         get_patchlev(__Ident_gnulib, str);
  161.         set_string(about2, AMINT, str);
  162.         get_patchlev(__Ident_gem, str);
  163.         set_string(about2, AGEM, str);
  164.         get_patchlev(__Ident_cflib, str);
  165.         set_string(about2, ACF, str);
  166.  
  167.         /* Hintergrundfarbe Iconify */
  168.         if (planes > 1)
  169.             winicon[WIBOX].ob_spec.obspec.interiorcol = LWHITE;
  170.  
  171.         /* Strings in die Zeichenauswahl eintragen */
  172.         set_asciitable_strings(rsc_string(ZEICHSTR1), rsc_string(ZEICHSTR2));
  173.     }
  174.     else
  175.         do_alert(1, 0, "[3][Resource nicht gefunden!|Resource file not found!][Exit]");
  176.     return rsc_init;
  177. }
  178.  
  179.  
  180. void term_resource (void)
  181. {
  182.     if (rsc_init)
  183.     {
  184.         delete_menu();
  185.         rsrc_free();
  186.     }
  187. }
  188.